// pages/order-detail/order-detail.js

var http = require('../../utils/http.js');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    orderItemDtos: [],
    remarks: "",
    actualTotal: 0,
    userAddrDto: null,
    orderNumber: "",
    createTime: "",
    status: 0,
    productTotalAmount: '',
    transfee: '',
    reduceAmount: '',
    actualTotal: '',
    prodid: '',
    orderType: 0,
    canRefund: false, // 能否退款
    canAllRefund: false, // 能否整单退款
    isLastProd: false,  //最后一款商品
    irrevocable: false,  //不可撤销
    sum: [],  //本单已申请单个退款的商品数组
  },

  //跳转商品详情页
  toProdPage: function(e) {
    var prodid = e.currentTarget.dataset.prodid;
    wx.navigateTo({
      url: (this.data.orderType !=3 ? '/pages/prod/prod?prodid=' : '/packageMemberIntegral/pages/convertProdDet/convertProdDet?prodId=') + prodid,
    })
  },

  /**
   * 是否最后一个商品在执行单个商品退款事件
   */
  applyLastProdRefund: function() {
    if(this.data.status==2) { //待发货状态下
      // 遍历商品list
      if(this.data.orderItemDtos.length > 1) {  //如果商品列表长度大于1
        let sum = []
        this.data.orderItemDtos.forEach((el,index) => {
          if (el.refundSn) { //如果拥有退款单号
            sum.push(el)
            this.setData({
              sum
            })
          }
        })
        console.log(this.data.sum)
        if(this.data.sum.length == this.data.orderItemDtos.length-1) {
          // 如果拥有退款单号的item等于商品列表数据长度-1，那么点击的这件商品就是最后意见商品
          this.setData({
            isLastProd: true
          })
        }else if(this.data.sum.length == this.data.orderItemDtos.length) {
          // 如果拥有退款单号的item等于商品列表数据长度，那么不可撤销申请
          this.setData({
            irrevocable: true  //不可撤销
          })
        }
      }
      console.log('isLastProd：',this.data.isLastProd)
      console.log('irrevocable：',this.data.irrevocable)
    }
  },


  /**
   * 申请退款
   */
  applyRefund: function(e) {
    var refundType = e.currentTarget.dataset.refundtype // 退款类型 1整单  2单个物品
    var status = this.data.status
    this.loadOrderDetail(this.data.orderNumber)  //请求订单详情数据
    if (e.currentTarget.dataset.refundtype == 1) { //整单退款
      var item = {}
      item.orderNumber = this.data.orderNumber;
      item.actualTotal = this.data.actualTotal;
      item.transfee = this.data.transfee;
      item.status = this.data.status; //订单状态
      item.orderItemDtos = this.data.orderItemDtos;
      //拿到存储在本地的订单项数据
      wx.setStorageSync("refundItem", item);
      console.log(item)
    } else if(e.currentTarget.dataset.refundtype == 2) { //单个商品退款
      this.applyLastProdRefund() //是否最后一个商品执行单个商品退款
      console.log('isLastProd：',this.data.isLastProd)
      // 将数据存储到本地
      var item = e.currentTarget.dataset.item;
      item.orderNumber = this.data.orderNumber;
      item.transfee = this.data.transfee;
      item.status = this.data.status; //订单状态
      item.isLastProd = this.data.isLastProd?this.data.isLastProd:undefined //是否最后一款商品
      //拿到存储在本地的订单项数据
      wx.setStorageSync("refundItem", item);
      console.log(item)
      console.log(item.actualTotal)
    }
    /**
     * 判断跳转页面（根据订单是否已发货）
     */
    var type = e.currentTarget.dataset.type;
    
    if (status == 2) {   //待发货，直接跳转到申请页，不需要选择退货方式
      wx.redirectTo({ //通过wx.redirectTo实现跳转（关闭当前页面，跳转到应用内某个页面）
        url: '/pages/applyRefund/applyRefund?type=' + type + '&refundType=' + refundType,
      })
    } else  {  //已发货，跳转到选择退货方式页
      wx.redirectTo({
        url: '/pages/chooseRefundWay/chooseRefundWay?refundType=' + refundType
      })
    }
  },


  /**
   * 查看退款
   */
  viewRefund: function(e) {
    var refundSn = e.currentTarget.dataset.refundsn;
    this.applyLastProdRefund() //是否最后一个商品执行单个商品退款
    console.log(this.data.irrevocable)
    wx.navigateTo({
      url: '/pages/DetailsOfRefund/DetailsOfRefund?refundSn=' + refundSn + '&irrevocable=' + this.data.irrevocable
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.loadOrderDetail(options.orderNum);
  },

  /**
 * 加载订单数据
 */
  loadOrderDetail: function(orderNum) {
    var ths = this;
    wx.showLoading();
    //加载订单详情
    var params = {
      url: "/p/myOrder/orderDetail",
      method: "GET",
      data: {
        orderNumber: orderNum
      },
      callBack: function(res) {
        ths.setData({
          orderNumber: orderNum,
          actualTotal: res.actualTotal, //实际支付总额（商品总额+运费)
          userAddrDto: res.userAddrDto,
          remarks: res.remarks,
          orderItemDtos: res.orderItemDtos,
          createTime: res.createTime,
          status: res.status,
          productTotalAmount: res.total, //所有商品总额
          transfee: res.transfee, //运费
          reduceAmount: res.reduceAmount,
          orderType: res.orderType,
          shopName: res.shopName,
          canRefund: res.canRefund,
          canAllRefund: res.canAllRefund
        });
        wx.hideLoading();
      }
    };
    http.request(params);

  },



  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },

  toGroupDetails:function(e){
    wx.navigateTo({
      url: '/pages/spellGroupDetails/spellGroupDetails?orderNumber='+e.currentTarget.dataset.ordernumber,
    })
  },


  // 一键复制事件
  copyBtn: function(e) {
    var ths = this;
    wx.setClipboardData({
      //准备复制的数据
      data: ths.data.orderNumber,
      success: function(res) {
        wx.showToast({
          title: '复制成功',
        });
      }
    })
  },

})